/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.employee.entity;

import com.thinkgem.jeesite.modules.sys.entity.Office;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 提成制工资Entity
 * @author jyangye
 * @version 2018-01-23
 */
public class ViEmpSaleryTicheng extends DataEntity<ViEmpSaleryTicheng> {
	
	private static final long serialVersionUID = 1L;
	private String employeeId;		// 员工编号

	private String salePoint;		// 售点
	private String steerId;		// 督导
	private String name;		// 姓名
	private Date indutyDate;		// 入职日期
	private String empStatus;		// 当前状态
	private String sales;		// 销量
	private Double basePay;		// 基本工资
	private Double postPay;		// 岗位工资
	private Double trafficSubsidy;		// 交通补贴
	private Double livingSubsidy;		// 住房补贴
	private Double phoneSubsidy;		// 花费补贴
	private Double foodSubsidy;		// 餐补
	private Double holidaySubsidy;		// 高温/假日
	private Double fixOvertime;		// 固定加班
	private Double usualOvertime;		// 平常加班
	private Double holidayOvertime;		// 法定假日加班
	private Double ticheng;		// 提成
	private Double price;		// 奖励
	private Double giftPrice;		// 赠品奖励
	private Double workDays;		// 上班天数
	private Double kaoqinKouk;		// 考勤扣款
	private Double specialPay;		// 特殊工资奖励
	private Double bufaPay;		// 补发工资
	private Double other;		// 其他
	private Double shoudPay;		// 应发金额
	private Double socialKouk;		// 社保扣款
	private Double foundKouk;		// 公积金扣款
	private Double taxKouk;		// 个税扣款
	private Double actualPay;		// 实发金额
	private Double koufa;		// 扣发金额
	private Double paidMoney;		// 实际打款金额
	private String code;		// 身份证
	private Integer year;		// 年份
	private Integer month;		// 月份

    private Office comp;
    private Office dept;
    private Office post;

	public ViEmpSaleryTicheng() {
		super();
	}

	public ViEmpSaleryTicheng(String id){
		super(id);
	}

	@Length(min=0, max=32, message="员工编号长度必须介于 0 和 32 之间")
	@ExcelField(title="员工编号", align=2, sort=20)
	public String getEmployeeId() {
		return employeeId;
	}

	public void setEmployeeId(String employeeId) {
		this.employeeId = employeeId;
	}

    public Office getComp() {
        return comp;
    }

    public void setComp(Office comp) {
        this.comp = comp;
    }
    @ExcelField(title="部门编号", align=2, sort=40)
    public Office getDept() {
        return dept;
    }

    public void setDept(Office dept) {
        this.dept = dept;
    }
    @ExcelField(title="岗位", align=2, sort=50)
    public Office getPost() {
        return post;
    }

    public void setPost(Office post) {
        this.post = post;
    }

    @Length(min=0, max=32, message="售点长度必须介于 0 和 32 之间")
	@ExcelField(title="售点", align=2, sort=60)
	public String getSalePoint() {
		return salePoint;
	}

	public void setSalePoint(String salePoint) {
		this.salePoint = salePoint;
	}
	
	@Length(min=0, max=32, message="督导长度必须介于 0 和 32 之间")
	@ExcelField(title="督导", align=2, sort=70)
	public String getSteerId() {
		return steerId;
	}

	public void setSteerId(String steerId) {
		this.steerId = steerId;
	}
	
	@Length(min=1, max=32, message="姓名长度必须介于 1 和 32 之间")
	@ExcelField(title="姓名", align=2, sort=80)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="入职日期", align=2, sort=90)
	public Date getIndutyDate() {
		return indutyDate;
	}

	public void setIndutyDate(Date indutyDate) {
		this.indutyDate = indutyDate;
	}
	
	@Length(min=0, max=1, message="当前状态长度必须介于 0 和 1 之间")
	@ExcelField(title="当前状态", align=2, sort=100, dictType = "emp_cur_status")
	public String getEmpStatus() {
		return empStatus;
	}

	public void setEmpStatus(String empStatus) {
		this.empStatus = empStatus;
	}
	
	@Length(min=0, max=50, message="销量长度必须介于 0 和 50 之间")
	@ExcelField(title="销量", align=2, sort=110)
	public String getSales() {
		return sales;
	}

	public void setSales(String sales) {
		this.sales = sales;
	}
	
	@ExcelField(title="基本工资", align=2, sort=120)
	public Double getBasePay() {
		return basePay;
	}

	public void setBasePay(Double basePay) {
		this.basePay = basePay;
	}
	
	@ExcelField(title="岗位工资", align=2, sort=130)
	public Double getPostPay() {
		return postPay;
	}

	public void setPostPay(Double postPay) {
		this.postPay = postPay;
	}
	
	@ExcelField(title="交通补贴", align=2, sort=140)
	public Double getTrafficSubsidy() {
		return trafficSubsidy;
	}

	public void setTrafficSubsidy(Double trafficSubsidy) {
		this.trafficSubsidy = trafficSubsidy;
	}
	
	@ExcelField(title="住房补贴", align=2, sort=150)
	public Double getLivingSubsidy() {
		return livingSubsidy;
	}

	public void setLivingSubsidy(Double livingSubsidy) {
		this.livingSubsidy = livingSubsidy;
	}
	
	@ExcelField(title="话费补贴", align=2, sort=160)
	public Double getPhoneSubsidy() {
		return phoneSubsidy;
	}

	public void setPhoneSubsidy(Double phoneSubsidy) {
		this.phoneSubsidy = phoneSubsidy;
	}
	
	@ExcelField(title="餐补", align=2, sort=170)
	public Double getFoodSubsidy() {
		return foodSubsidy;
	}

	public void setFoodSubsidy(Double foodSubsidy) {
		this.foodSubsidy = foodSubsidy;
	}
	
	@ExcelField(title="高温/假日", align=2, sort=180)
	public Double getHolidaySubsidy() {
		return holidaySubsidy;
	}

	public void setHolidaySubsidy(Double holidaySubsidy) {
		this.holidaySubsidy = holidaySubsidy;
	}
	
	@ExcelField(title="固定加班", align=2, sort=190)
	public Double getFixOvertime() {
		return fixOvertime;
	}

	public void setFixOvertime(Double fixOvertime) {
		this.fixOvertime = fixOvertime;
	}
	
	@ExcelField(title="平常加班", align=2, sort=200)
	public Double getUsualOvertime() {
		return usualOvertime;
	}

	public void setUsualOvertime(Double usualOvertime) {
		this.usualOvertime = usualOvertime;
	}
	
	@ExcelField(title="法定假日加班", align=2, sort=210)
	public Double getHolidayOvertime() {
		return holidayOvertime;
	}

	public void setHolidayOvertime(Double holidayOvertime) {
		this.holidayOvertime = holidayOvertime;
	}
	
	@ExcelField(title="提成", align=2, sort=220)
	public Double getTicheng() {
		return ticheng;
	}

	public void setTicheng(Double ticheng) {
		this.ticheng = ticheng;
	}
	
	@ExcelField(title="奖励", align=2, sort=230)
	public Double getPrice() {
		return price;
	}

	public void setPrice(Double price) {
		this.price = price;
	}
	
	@ExcelField(title="赠品奖励", align=2, sort=240)
	public Double getGiftPrice() {
		return giftPrice;
	}

	public void setGiftPrice(Double giftPrice) {
		this.giftPrice = giftPrice;
	}
	
	@ExcelField(title="上班天数", align=2, sort=250)
	public Double getWorkDays() {
		return workDays;
	}

	public void setWorkDays(Double workDays) {
		this.workDays = workDays;
	}
	
	@ExcelField(title="考勤扣款", align=2, sort=260)
	public Double getKaoqinKouk() {
		return kaoqinKouk;
	}

	public void setKaoqinKouk(Double kaoqinKouk) {
		this.kaoqinKouk = kaoqinKouk;
	}
	
	@ExcelField(title="特殊工资奖励", align=2, sort=270)
	public Double getSpecialPay() {
		return specialPay;
	}

	public void setSpecialPay(Double specialPay) {
		this.specialPay = specialPay;
	}
	
	@ExcelField(title="补发工资", align=2, sort=280)
	public Double getBufaPay() {
		return bufaPay;
	}

	public void setBufaPay(Double bufaPay) {
		this.bufaPay = bufaPay;
	}
	
	@ExcelField(title="其他", align=2, sort=290)
	public Double getOther() {
		return other;
	}

	public void setOther(Double other) {
		this.other = other;
	}
	
	@ExcelField(title="应发金额", align=2, sort=300)
	public Double getShoudPay() {
		return shoudPay;
	}

	public void setShoudPay(Double shoudPay) {
		this.shoudPay = shoudPay;
	}
	
	@ExcelField(title="社保扣款", align=2, sort=310)
	public Double getSocialKouk() {
		return socialKouk;
	}

	public void setSocialKouk(Double socialKouk) {
		this.socialKouk = socialKouk;
	}
	
	@ExcelField(title="公积金扣款", align=2, sort=320)
	public Double getFoundKouk() {
		return foundKouk;
	}

	public void setFoundKouk(Double foundKouk) {
		this.foundKouk = foundKouk;
	}
	
	@ExcelField(title="个税扣款", align=2, sort=330)
	public Double getTaxKouk() {
		return taxKouk;
	}

	public void setTaxKouk(Double taxKouk) {
		this.taxKouk = taxKouk;
	}
	
	@ExcelField(title="实发金额", align=2, sort=340)
	public Double getActualPay() {
		return actualPay;
	}

	public void setActualPay(Double actualPay) {
		this.actualPay = actualPay;
	}
	
	@ExcelField(title="扣发金额", align=2, sort=350)
	public Double getKoufa() {
		return koufa;
	}

	public void setKoufa(Double koufa) {
		this.koufa = koufa;
	}
	
	@ExcelField(title="实际打款金额", align=2, sort=360)
	public Double getPaidMoney() {
		return paidMoney;
	}

	public void setPaidMoney(Double paidMoney) {
		this.paidMoney = paidMoney;
	}
	
	@Length(min=0, max=32, message="身份证长度必须介于 0 和 32 之间")
	@ExcelField(title="身份证", align=2, sort=85)
	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}
	
	@ExcelField(title="年份", align=2, sort=380)
	public Integer getYear() {
		return year;
	}

	public void setYear(Integer year) {
		this.year = year;
	}
	
	@ExcelField(title="月份", align=2, sort=390)
	public Integer getMonth() {
		return month;
	}

	public void setMonth(Integer month) {
		this.month = month;
	}
	
}